<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    let arr = ['a', 's', 'd', 's', 'a', 'd', 'g']
    let str = 'asdasadsfasdssasdssddsssd'
    // 第一种
    // 封装一个去重的方法,可以数组也可以字符串
    // indexOf() 可以返回某个指定的字符串在字符串中首次出现的位置
    // 如果不存在,就会返回-1
    function unique(arr) {
      var newArry = []
      for (i = 0; i < arr.length; i++) {
        if (newArry.indexOf(arr[i]) === -1) {
          newArry.push(arr[i])
        }
      }
      return newArry
    }
    var demo = unique(arr)
    console.log(demo);
    var demo2 = unique(str)
    console.log(demo2);

    // 第二种，使用set
    let demo3 = new Set(arr)
    console.log(demo3);
    let demo4 = new Set(str)
    console.log(demo4);

    // 第三种，使用filter函数
    let demo5 = arr.filter(function (item, index, self) {
      return self.indexOf(item) === index
    })
    console.log(demo5);

    let demo6 = str.split('').filter(function (item, index, self) {
      return self.indexOf(item) === index
    })
    console.log(demo6);
  </script>
</body>

</html>